package studia.figlewicz.math.library;

import java.util.Date;
import java.util.Map;

public class PrzeplywWalutowy extends PrzeplywPieniezny {
	
	public final static String[] instrumentyPodstawowe = {
		PrzeplywWalutowy.CENA_INSTRUMENTU_PODSTAWOWEGO
	};
	public final static String CENA_INSTRUMENTU_PODSTAWOWEGO = Stale.PRZEPLYW_WALUTOWY_IP_KURS_WALUTY;

	
	// konstruktory
	public PrzeplywWalutowy(Date dataPrzeplywu, Double nominal) {
		super(dataPrzeplywu, nominal);
	}
	
	
	// gettery i settery
	@Override
	public String[] getInstrumentyPodstawowe() {
		return PrzeplywWalutowy.instrumentyPodstawowe;
	}
	
	@Override
	public StatystykaWyceny obliczWyplate(Map<String, TrajektoriaProcesu> projekcje) {
		StatystykaWyceny resoult = null;
		
		TrajektoriaProcesu wynikProjekcji = projekcje.get(CENA_INSTRUMENTU_PODSTAWOWEGO);
		
		if (wynikProjekcji != null)
			resoult = wyplataZTrajektorii(wynikProjekcji);
		
		return resoult;
	}
	
	
	// motody prywatne
	private StatystykaWyceny wyplataZTrajektorii(TrajektoriaProcesu trajektoriaKursu) {
		StatystykaWyceny resoult = new StatystykaWyceny();

		if (trajektoriaKursu != null) {
			double kurs = trajektoriaKursu.znajdzWartosc(dataPrzeplywu).doubleValue();
			resoult.wartoscNominalna = new Double(nominal.doubleValue() * kurs);
			
			double r = integral(stopaDyskonta, dataWyceny, dataPrzeplywu,1);
			double DF = 1 / (1 + r);
			resoult.wartoscRealna  = resoult.wartoscNominalna * DF;
		}
		
		return resoult;
	}


}
